﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<stack>
#include<queue>
#include<algorithm>
using namespace std;

//struct Node
//{
//	int data;
//	Node* next;
//};
//struct List
//{
//	Node* phead;
//	// 成员函数
//	// 构造函数
//	List()
//	{
//		phead = NULL;
//
//	}
//};
//
//int main()
//{
//
//	return 0;
//}

//int main()
//{
//	int T; cin >> T;
//	while (T--)
//	{// 清空栈
//		top = 0;
//		int n; cin >> n;
//		while (n--)
//		{
//			string op; cin >> op;
//			if (op == "push") // ⼊栈
//			{
//				LL x; cin >> x;
//				stk[++top] = x;
//			}
//			else if (op == "pop") // 出栈
//			{
//				if (top == 0) cout << "Empty" << endl;
//				else top--;
//			}
//			else if (op == "query") // 查询
//			{
//				if (top == 0) cout << "Anguei!" << endl;
//				else cout << stk[top] << endl;
//			}
//			else // 栈的⼤⼩
//			{
//				cout << top << endl;
//			}
//		}
//	}
//	return 0;
//}

//int main()
//{
//	int T;
//	cin >> T;
//	while (T--)
//	{
//		top = 0;
//		int n; cin >> n;
//		while (n--)
//		{
//			string op; cin >> op;
//			if (op == "push")
//			{
//				LL x; cin >> x;
//				stk[++top] = x;
//			}
//			else if (op =="pop")
//			{
//				if (top == 0)
//				{
//					cout << "Empty" << endl;
//				}
//				else
//				top--;
//			}
//			else if (op == "query")
//			{
//				if (top == 0)
//					cout << "Anguei!" << endl;
//				else
//					cout << stk[top] << endl;
//			}
//			else if (op == "size")
//			{
//				cout << top << endl;
//			}
//
//		}
//
//	}
//}


//const int N = 1e5 + 10;
//int a[N], b[N];
//int main()
//{
//
//	int n;
//	int q;
//	cin >> q;
//	while (q--)
//	{
//		cin >> n;
//		int x, y;
//		int n1 = n;
//		for (int i = 1; i <= n; i++)
//		{
//			cin >> a[i];
//		}
//		for (int i = 1; i <= n; i++)
//		{
//			cin >> b[i];
//		}
//		stack<int> st;
//		int j = 1;
//		for (int i = 1; i <= n; i++)
//		{
//			st.push(a[i]);
//			while (j <= n && st.size() && st.top() == b[j])
//			{
//				st.pop();
//				j++;
//			}
//		}
//		if (st.size()!=0)cout << "No" << endl;
//		else cout << "Yes" << endl;
//	}
//	return 0;
//}

//int main()
//{
//	stack<int>st;
//	char ch;
//	int num = 0;
//	while (cin >> ch)
//	{
//		if (ch == '@') break;
//		if (ch == '.')
//		{
//			st.push(num);
//			num = 0;
//		}
//		else if (ch >= '0' && ch <= '9')
//		{
//			num = num * 10 + ch-'0';
//		}
//		else
//		{
//			int b = st.top();
//			st.pop();
//			int a = st.top();
//			st.pop();
//			if (ch == '+') st.push(a + b);
//			else if (ch == '-') st.push(a - b);
//			else if (ch == '*') st.push(a * b);
//			else st.push(a / b);
//		}
//		
//	}
//	cout << st.top() << endl;
//	return 0;
//}

//typedef struct peoinfo
//{
//	char name[20];
//	int id;
//	int english;
//	int math;
//}peoinfo;
//
//typedef struct stu
//{
//	peoinfo data[6];
//	int sz;
//}stu;
//
//void Initcontact(stu* pc)
//{
//	pc->sz = 0;
//	memset(pc->data, 0, sizeof(pc->data));
//}
//void AddContact(stu* pc)
//{
//
//	cin >> pc->data[pc->sz].id >> pc->data[pc->sz].name >> pc->data[pc->sz].math >> pc->data[pc->sz].english;
//	pc->sz++;
//}
//int main()
//{
//	int n = 6;
//	struct stu s1[5];
//	
//
//	
//
//
//}
//#define max 666
//struct stu
//{
//	string name;
//	int id;
//	int english;
//	int math;
//}s[max];
//
//bool cmp(const stu& a, const stu& b)
//{ 
//	return a.english > b.english;
//} 
//
//int main()
//{
//	int n;
//	cin >> n;
//	for (int i = 0;i<n; i++) 
//	{
//		cin >> s[i].id >> s[i].name >> s[i].math >> s[i].english;
//	}
//	//sort(s, &s[n-1],cmp);
//	for (int i = 0; i < n - 1; i++)
//	{
//		for (int j = 0; j < n - 1 - i; j++)
//		{
//			if (s[j].english > s[j].english)
//			{
//				stu tmp = s[j];
//				s[j] = s[j + 1];
//				s[j + 1] = tmp;
//			}
//		}
//	}
//
//	for (int i = 0; i < n; i++)
//	{
//		cout << s[i].id <<"  " << s[i].name << "  " << s[i].math << "  " << s[i].english << "  " << endl;
//	}
//	return 0;
//}

//#include <iostream>
//#include <algorithm>
//using namespace std;
//struct Student
//{
//    int ID;
//    string Name;
//    int Math;
//    int Eng;
//};
//bool cmp(const Student& a, const Student& b)
//{
//    return a.Eng - b.Eng;
//}
//int main()
//{
//    Student person[] = {
//            
//    int n = sizeof(person) / sizeof(person[0]);
//    sort(person, person + n, cmp);
//    cout << "学号\t姓名\t英语成绩\t数学成绩\n";
//    for (int i = 0; i < n; i++)
//    {
//        cout << person[i].ID << "\t" << person[i].Name << "\t" << person[i].Eng << "\t" << person[i].Math << "\t" << endl;
//    }
//    return 0;
//}

//typedef pair<int, int>PII;
//
//int main()
//{
//	queue<PII>q;
//	for (int i = 1;i <= 10; i++)
//	{
//		q.push({ i,i*10});
//	}
//	while (q.size())
//	{
//		auto t = q.front();
//		q.pop();
//	}
//	return 0;
//}


/*oid push(int x)
{
	q[++t] = x;
}
void pop()
{
	h++;
}
int main()
{
	int x;
	int n = 0;
	cin >> n;
	while (n--)
	{
		int op;
		cin >> op;
		if (op == 1)
		{	
			cin >> x;
			push(x);
		}
		if (op == 2)
		{
			if (t-h <= 0)
			{
				cout << "ERR_CANNOT_POP" << endl;
			}
			else
			{
				pop();

			}
		}
		if (op == 3)
		{
			if (t-h<= 0)
			{
				cout << "ERR_CANNOT_POP" << endl;
			}
			else 
			{
				cout << q[h++] << endl;
			}
		}
		if (op == 4)
		{
			if (t-h<= 0)
			{
				cout << "0" << endl;
			}
			else
			cout << (t - h+2);
		}
	}
   return 0;
}*/

//const int N = 1e4 + 10;
//int h, t;
//int q[N];
//
//int main()
//{
//	int n; cin >> n;
//	while (n--)
//	{
//		int op, x;
//		cin >> op;
//		if (op == 1) // 进队
//		{
//			cin >> x;
//			q[t++] = x;
//		}
//		else if (op == 2) // 出队
//		{
//			if (h == t) cout << "ERR_CANNOT_POP" << endl;
//			else h++;
//		}
//		else if (op == 3) // 队头元素
//		{
//			if (h == t) cout << "ERR_CANNOT_QUERY" << endl;
//			else cout << q[h] << endl;
//		}
//		else // 元素个数
//		{
//			cout << t - h << endl;
//		}
//	}
//	return 0;
//}






